-
Notifications
You must be signed in to change notification settings - Fork 1.1k
GH-10090: Add channel adapters for AMQP 1.0 #10445
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
This just an initial PoC and provides only an outbound channel adapter implementation. I anticipate these features yet:
Thanks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
My usual nitpicks :-)
...qp/src/main/java/org/springframework/integration/amqp/outbound/AmqpClientMessageHandler.java
Outdated
Show resolved
Hide resolved
...qp/src/main/java/org/springframework/integration/amqp/outbound/AmqpClientMessageHandler.java
Show resolved
Hide resolved
...qp/src/main/java/org/springframework/integration/amqp/outbound/AmqpClientMessageHandler.java
Show resolved
Hide resolved
...qp/src/main/java/org/springframework/integration/amqp/outbound/AmqpClientMessageHandler.java
Show resolved
Hide resolved
...qp/src/main/java/org/springframework/integration/amqp/outbound/AmqpClientMessageHandler.java
Show resolved
Hide resolved
...c/test/java/org/springframework/integration/amqp/outbound/AmqpClientMessageHandlerTests.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes to previous commit look great!
Addition of the AmqpClientMessageProducer look good as well. Just one nitpick for an additional test.
This some cool stuff! Thanks for working on it!
...c/test/java/org/springframework/integration/amqp/inbound/AmqpClientMessageProducerTests.java
Show resolved
Hide resolved
Related to: spring-projects#10090 Spring AMQP now provides the `org.springframework.amqp:spring-rabbitmq-client` library to communicate to RabbitMQ with AMQP 1.0 protocol. * Replace `spring-rabbit` with the `spring-rabbitmq-client` since the latter brings the AMQP 0.9 protocol library as transitive dependency * Introduce an `AmqpClientMessageHandler` based on the `AsyncAmqpTemplate` where its implementation should be for AMQP 1.0, e.g. `org.springframework.amqp.rabbitmq.client.RabbitAmqpTemplate` * This outbound channel adapter can behave as a gateway when `setRequiresReply(true)` * Cover basic `AmqpClientMessageHandler` with integration tests * Document this new feature
…rom RabbitMQ AMQP 1.0 * Fix typos and language in docs and Javadocs * Add tests and docs about new `AmqpClientMessageProducer` * Add `whats-new.adoc` bullet for a new `spring-integration-amqp` feature
…iledException` when exception is bubbled from the downstream flow * Add test for error handling * Add test for batch manual ack * Remove redundant (and dangerous) `@ComponentScan` from the `ManualAckTests`: it does not do anything for the test suite, but is able to see all the `@Configuration` classes in other tests of this package. That may lead to unexpected behavior and failures
7ffeb67 to
4d7b950
Compare
|
@cppwfs , let me know if you are going to merge this after your next review, or is that OK for me to continue piling related features into this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This is great stuff!
Thanks for adding the batch test!
Related to: #10090
Spring AMQP now provides the
org.springframework.amqp:spring-rabbitmq-clientlibrary to communicate to RabbitMQ with AMQP 1.0 protocol.spring-rabbitwith thespring-rabbitmq-clientsince the latter brings the AMQP 0.9 protocol library as transitive dependencyAmqpClientMessageHandlerbased on theAsyncAmqpTemplatewhere its implementation should be for AMQP 1.0, e.g.org.springframework.amqp.rabbitmq.client.RabbitAmqpTemplatesetRequiresReply(true)AmqpClientMessageHandlerwith integration tests